struct _SEGMENT_HEAP// Size=0x840
{
    struct RTL_HP_ENV_HANDLE EnvHandle;// Offset=0x0 Size=0x10
    unsigned long Signature;// Offset=0x10 Size=0x4
    unsigned long GlobalFlags;// Offset=0x14 Size=0x4
    unsigned long Interceptor;// Offset=0x18 Size=0x4
    unsigned short ProcessHeapListIndex;// Offset=0x1c Size=0x2
    unsigned short AllocatedFromMetadata:1;// Offset=0x1e Size=0x2 BitOffset=0x0 BitSize=0x1
    struct _RTL_HEAP_MEMORY_LIMIT_DATA CommitLimitData;// Offset=0x20 Size=0x20
    unsigned long long ReservedMustBeZero1;// Offset=0x20 Size=0x8
    void * UserContext;// Offset=0x28 Size=0x8
    unsigned long long ReservedMustBeZero2;// Offset=0x30 Size=0x8
    void * Spare;// Offset=0x38 Size=0x8
    unsigned long long LargeMetadataLock;// Offset=0x40 Size=0x8
    struct _RTL_RB_TREE LargeAllocMetadata;// Offset=0x48 Size=0x10
    unsigned long long LargeReservedPages;// Offset=0x58 Size=0x8
    unsigned long long LargeCommittedPages;// Offset=0x60 Size=0x8
    unsigned long long Tag;// Offset=0x68 Size=0x8
    union _RTL_RUN_ONCE StackTraceInitVar;// Offset=0x70 Size=0x8
    struct _HEAP_RUNTIME_MEMORY_STATS MemStats;// Offset=0x80 Size=0x58
    unsigned short GlobalLockCount;// Offset=0xd8 Size=0x2
    unsigned long GlobalLockOwner;// Offset=0xdc Size=0x4
    unsigned long long ContextExtendLock;// Offset=0xe0 Size=0x8
    unsigned char * AllocatedBase;// Offset=0xe8 Size=0x8
    unsigned char * UncommittedBase;// Offset=0xf0 Size=0x8
    unsigned char * ReservedLimit;// Offset=0xf8 Size=0x8
    unsigned char * ReservedRegionEnd;// Offset=0x100 Size=0x8
    struct _HEAP_SEG_CONTEXT SegContexts[2];// Offset=0x140 Size=0x180
    struct _HEAP_VS_CONTEXT VsContext;// Offset=0x2c0 Size=0xc0
    struct _HEAP_LFH_CONTEXT LfhContext;// Offset=0x380 Size=0x4c0
};